When interrupted, first disable tracing, then read through the records
one last time.
Without this patch, it's possible to get traces which interact (such
as runstate changes) on processors with higher numbers, while missing
the corresponding traces generated on lower-numbered processors.
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
unsigned long data_size;
+ int last_read = 1;
+
/* prepare to listen for VIRQ_TBUF */
event_init();
}
if ( interrupted )
- break;
+ {
+ if ( last_read )
+ {
+ /* Disable tracing, then read through all the buffers one last time */
+ if ( opts.disable_tracing )
+ disable_tbufs();
+ last_read = 0;
+ continue;
+ }
+ else
+ break;
+ }
wait_for_event_or_timeout(opts.poll_sleep);
}
- if ( opts.disable_tracing )
- disable_tbufs();
-
if ( opts.memory_buffer )
membuf_dump();